package asteroids.model.expressions;

import java.util.*;
import asteroids.model.types.*;
import asteroids.model.*;

/**
 * the superclass E that represents all the expressions 
 * 
 * @version 1.0
 * 
 * @author	Thijs Peirelinck & Wouter Parys
 *
 */
public abstract class E {
	
	
	public abstract boolean isValidExpression();
	
	public abstract Object getValue();
	
	public abstract String getReturnType();
	
	public abstract String toString();
	
	public abstract E createCopy();
	
	public abstract void setExecuter(Ship executer);
	
	public abstract void validate(HashMap<String, E> variables);
	
	public abstract boolean typeCheck(Map<String, T> globals);
}
